﻿using System;

namespace Oxage.Windows.Controls
{
	[AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
	public sealed class CommandLineHandlerAttribute : Attribute
	{
		#region Constructors
		public CommandLineHandlerAttribute()
		{
		}

		public CommandLineHandlerAttribute(string command) : this(command, null)
		{
		}

		public CommandLineHandlerAttribute(string command, string summary)
		{
			this.Command = command;
			this.Summary = summary;
		}
		#endregion

		#region Public properties
		/// <summary>
		/// Gets or sets a command name. Command name cannot contain spaces.
		/// </summary>
		public string Command
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a descriptive summary for general 'help' command.
		/// </summary>
		public string Summary
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a type where the attribute instance is attached to.
		/// </summary>
		public Type Type
		{
			get;
			set;
		}
		#endregion
	}
}
